import './utils/mixins'
import Utils from './utils/index'

App({
  // 全局变量
  globalData: {
    isInit: false,  //  小程序是否初始化成功
    initFail: false,  //  小程序是否初始化成功
    isLogin: false, //  当前用户是否登录
    jwtToken: null, //  用户JWT令牌
    userInfo: null, // 用户信息
    phoneModel: '', // 终端型号
    pixelRatio: '', // 终端像素比
    windowWidth: '', // 终端宽度
    windowHeight: '', // 终端高度
    isIphoneX: false, // 是否为iphoneX
    cdnUrl: 'cloud://6465-develop-d3o6a-1301022660', // 资源网域
  },
  async onLaunch (options) {
    // 云开发初始化
    this.initCloud()
    // 隐藏tabbar
    wx.hideTabBar()
    // 获取屏幕信息
    this.getSystemInfo()
    // 尝试登录
    await this.tryLogin()
    // 初始化成功，才显示TabBar
    wx.showTabBar()

  },
  onShow (options) {
    console.log('app onShow', options);
  },
  onHide () {
    console.log('app onHide');
  },
  // 云开发初始化
  initCloud() {
    wx.cloud.init({
      env: 'cloud.DYNAMIC_CURRENT_ENV',
      traceUser: true
    })
  },
  // 获取屏幕信息
  getSystemInfo() {
    const that = this
    wx.getSystemInfo({
      success(res) {
        that.globalData.phoneModel = res.model  // 终端型号
        that.globalData.pixelRatio = Math.round(res.pixelRatio)
        that.globalData.windowWidth = res.windowWidth
        that.globalData.windowHeight = res.windowHeight  // 窗口高度
        if (res.model.indexOf('iPhone X') > -1) {
          that.globalData.isIphoneX = true
        }
      }
    })
  },
  // 登录检查
  async tryLogin() {
    let openId = this.globalData.jwtToken
    // 有登录记录, 尝试登录
    if (openId) {
      // 获取用户信息
      let params = {
        _openid: openId
      }
      let res = await userApi.GetUserInfoByOPENID(params)
      // 判断数据库里面是否有
      if (res.code === '0') {
        // 赋值用户信息
        this.globalData.userInfo = res.data.userInfo
        this.globalData.isLogin = true
      } else {
        Utils.redirectToPage('/pages/login/login', true)
      }
    }
    // 程序加载完毕
    this.globalData.isInit = true
  }
})
